/*
 *   项目名称：rpc-demo
 *   文件名称：com.xiaolon.rpc.model.ServiceMetaInfo
 *
 *   创建人：  ZHOU XIAO LONG
 *   创建日期：2024/12/9
 *
 */
package com.xiaolon.rpc.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

/*
 * 类描述：ServiceMetaInfo
 * 服务元信息
 */
@Data
public class ServiceMetaInfo {
    /**
     * 服务名称
     */
    private String serviceName;

    /**
     * 服务版本号
     */
    private String serviceVersion="1.0";

    /**
     * 服务主机
     */
    private String serviceHost;

    /**
     * 服务端口号
     */
    private Integer servicePort;

    /**
     * 服务分组（暂未实现）
     */
    private String serviceGroup = "default";

    /**
     * 获取服务键名
     * @return
     */
    public String getServiceKey(){
        // 后续可拓展服务分组
        // return String.format("%s:%s", serviceName, serviceGroup);
        return String.format("%s:%s", serviceName, serviceVersion);
    }

    /**
     * 获取服务注册节点键名
     * @return
     */
    public String getServiceNodeKey(){
        return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
//        return String.format("%s/%s:%s",getServiceKey(), serviceHost, servicePort);
    }

    public String getServiceAddress(){
        if(!StrUtil.contains(serviceHost, "http")){
            return String.format("http://%s:%s",serviceHost, servicePort);
        }
        return String.format("%s:%s",serviceHost, servicePort);
    }
}
